//配置axios的基础路径
axios.defaults.baseURL = "http://localhost:8080/";
//配置Vue的全局属性用来获取axios对象
Vue.prototype.$http = axios;


//===============================axios的前置拦截器========================//
//发送axios请求之前都会执行以下代码
axios.interceptors.request.use(res=>{
    //从localStorage获取token
    let token = localStorage.getItem("token");
    if(token){
        //将token设置到请求头
        res.headers["token"] = token;
    }
    return res;
},error => {
    Promise.reject(error)
})
//===============================axios的前置拦截器========================//


//===============================axios的后置拦截器========================//
//发送axios请求之后都会执行以下代码
axios.interceptors.response.use(res=>{ //"{"success":false,"message":"noLogininfo"}"
    //跳转登录页面
    if(false === res.data.success && "noLogininfo" === res.data.message){
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        //跳转到登录页面
        location.href = "/login.html";
    }
    return res;
},error => {
    Promise.reject(error)
})
//===============================axios的后置拦截器========================//


//===============================静态资源拦截器========================//
var url = location.href;
if(url.indexOf("login.html")==-1
    && url.indexOf("register.html")==-1
    && url.indexOf("callback.html")==-1
    && url.indexOf("binder.html")==-1
){
    // 你访问的是受限资源   判断你有没有登录
    var logininfo = localStorage.getItem("logininfo");
    if(!logininfo){
        // 直接跳转到登录页面
        location.href="/login.html"
    }
}
//注意要在index.html中引入common.js

//封装公用方法 - 将字符串的参数解析为json对象（请求路径里获取code）
function parseUrlParams2Obj(url) {
    let paramStr = url.substring(url.indexOf("?")+1);//xxx?code=xxx&state=1
    let paramArr = paramStr.split("&");
    let paramObj = {};
    for(let i = 0;i<paramArr.length;i++){
        let paramTemp = paramArr[i];
        let paramName = paramTemp.split("=")[0];
        let paramValue= paramTemp.split("=")[1];
        paramObj[paramName] = paramValue;
    }
    return paramObj;
}

